The PCMCIA organization has developed specifications and implementation guidelines for a new type of PC Card called an ExpressCard. ExpressCard™ is a trademark of PCMCIA organization. The ExpressCard has a new form factor and electrical interface, and does not support the PCMCIA 16-bit or 32-bit (CardBus) interfaces defined by previous PC Card Standards.
The ExpressCard technical details are specified by PCMCIA Proposal 279, soon to be published, and in draft version 1.00 review. The “NEWCARD_Draft—1.0-091003” (Sep. 10, 2003) Electromechanical Specification and the “Guidelines_Draft—0.95110703” Implementation Guidelines documents are used as a basis for ExpressCard technical details throughout this disclosure. These documents are referred to as the ExpressCard Specification and the ExpressCard Guidelines (or Guidelines), respectively, throughout this document.
In the ExpressCard Specification, a new exchangeable input/output card is defined, called an ExpressCard module. There are two form factors for the modules defined in Section 4 of the ExpressCard Specification: called the ExpressCard/34 module (characterized by its 34 mm width) and the ExpressCard/54 module (characterized by its 54 mm width). The ExpressCard modules interface to a computer system through a physical connector, which is subject to the requirements of Section 5 of the ExpressCard Specification.
The ExpressCard guidelines contemplate ExpressCard modules interfacing to both mobile PC and desktop PC computer systems. For desktop PC computer systems, the Guidelines provide details regarding three topologies: motherboard direct attachment, riser card, and a cabled topology. For the riser card topology, the Guidelines recommend the PCI Express slot riser architecture, and illustrate a USB cabled connection to the riser card to provide USB type ExpressCard support. For the cabled topology, the Guidelines provide an interface cable connector and signal recommendation that includes PCI Express, USB, and other ExpressCard signals.
Conventional ExpressCard Electrical Interface
There are significantly less signals defined for the ExpressCard connector than the popular 68-pin PCMCIA (CardBus) signals defined by the PC Card Standard v8.0. The ExpressCard signals consist of five groups, as described in Section 3.1 of the ExpressCard Specification: PCI Express, Universal Serial Bus (USB), System Management Bus (SMBus), System Auxiliary Signals, and Power Signals.
The power signals are defined to supply voltage to the ExpressCard module. The following power supplies are provided: primary +3.3V, secondary +1.5V, and auxiliary +3.3Vaux. The auxiliary +3.3Vaux supply is typically used for low-power states. Ground signals (GND) provide the voltage reference.
The PCI Express signals include an x1 data interface (PETp0, PETn0, PERp0, PERn0), a spread-spectrum reference clock (REFCLK+, REFCLK−), and a functional reset (PERST#) all compliant with the PCI Express Standard. These seven PCI Express signals are required by an ExpressCard host, and are required by ExpressCard modules that provide PCI Express connectivity.
The ExpressCard Guidelines provide trace routing suggestions regarding the PCI Express differential transmit/receive signal pairs, and illustrates that the PCI Express x1 data interface interfaces to the host system chip set. The Guidelines also suggest an intervening PCI Express switch in alternate implementations. The ExpressCard Guidelines provide trace routing suggestions regarding the PCI Express reference clock, and suggests a connection between the reference clock (a.k.a. REFCLK) generator and the ExpressCard socket.
The PCI Express PERST# signal is intended to be used as a hardware reset for PCI Express based ExpressCard modules, and indicates that power supplied to the +3.3V and +1.5V sources are stable. Section 3.2.4 of the ExpressCard Specification illustrates timing diagrams related to ExpressCard power switching and the corresponding functionality of PERST#. The Guidelines illustrate PERST# as a component of the ExpressCard power switch, and the ExpressCard Specifications and Guidelines teach that PERST# behavior is also dependent on an optional additional system reset signal (SYS_RST).
The PCI Express signals include USB 2.0 data interface (USBD+, USBD−). The two USB signals are required by an ExpressCard host, and are all required by ExpressCard modules that provide PCI Express connectivity. The ExpressCard Guidelines provide trace routing suggestions regarding the USB 2.0 signals, and illustrates that the USB 2.0 signals interfaces to the host system chip set. The Guidelines also suggest an intervening USB host controller or downstream hub in alternate implementations.
The SMBus signals include only SMBDATA and SMBCLK, both conventional names for the data and clock signals defined by the SMBus Specification (Version 1.1). There are no assignments to the ExpressCard module for SMBus optional signals such as SMBALERT# and SMBSUS#. The ExpressCard Specification defines this SMBus interface as optional for both host systems and the ExpressCard modules.
The System Auxiliary Signals include four signals: CPPE#, CPUSB#, CLKREQ#, and WAKE#. The CPPE# signal is used to detect the presence of ExpressCard modules with a PCI Express electrical interface, and the CPUSB# signal is used to detect the presence of ExpressCard modules with a USB electrical interface.
The CLKREQ# signal is used to indicate when REFCLK is needed for an ExpressCard module with a PCI Express electrical interface. The REFCLK management is done for purposes of improving electromagnetic EMI emissions, as well as potential power savings. The Guidelines describe two clock control methods used to disable the REFCLK when no card is present or if the card does not need the REFCLK (e.g. a USB-type ExpressCard module). One method is to directly connect the CLKREQ# signal to an output enable input of the clock generator device. A second method is to connect the ExpressCard CLKREQ# signal to a general purpose input that generates a priority interrupt for the CPU, and BIOS level code would enable/disable the clock through SMBus communication with the clock generator. The ExpressCard specification requires CLKREQ# is left unconnected on ExpressCard modules that don't implement PCI Express.
The WAKE# signal is used by ExpressCard modules with a PCI Express electrical interface, to request that the host platform return from a sleep/suspended state. The Guidelines suggest an architecture sharing WAKE# with other slots in the system. The Guidelines discuss a WAKE# signal implementation that generates a power management event via native system I/O interfaces, conventionally, by a general purpose input signal to an embedded controller or host chip set components, generically called the PM controller in the PCI Express Specification. The ExpressCard specification requires WAKE# is left unconnected on ExpressCard modules that don't implement PCI Express, and further require that USB-based applications use the in-band wakeup protocol defined in the USB 2.0 Specification.
Conventional ExpressCard Power Switches
The ExpressCard Specification and Guidelines define elements of a power switch device, and illustrate conceptual power switch device implementations to provide controlled power to an ExpressCard socket. Since no ExpressCard power switches are available on the market today, a conventional ExpressCard power switch is considered to be a combination of what is learned in the ExpressCard Specification and Guidelines combined with what is typically provided for similar types of exchangeable I/O card power switches on the market today, such as PCMCIA power switches.
There are five separate functional blocks described here for the conventional ExpressCard power switch: thermal sensor, debounce, switch and PERST# control, power switches and/or regulators, and output meter.
Depending upon the available power supplied to a conventional ExpressCard power switch, or other factors including power trace impedance and supply variance, a power switch versus voltage regulator or LDO (low-drop output) voltage regulator architecture decision is made. With either solution, the conventional ExpressCard power switch shall be capable of supplying +3.3V at 1300 mA maximum, +3.3Vaux at 275 mA maximum, and +1.5V at 650 mA maximum per the ExpressCard power supply limit specifications. These supplies shall meet the respective voltage ranges at the ExpressCard socket interface, after incurring losses from system board trace impedance, power supply input variance, and contact resistance (60 mΩ maximum after stress) in the connector as specified in Section 5.3 of the ExpressCard Specification.
The ExpressCard Guidelines provide discussion regarding the power switch parameter of on-resistance, and has provided recommended values for the ExpressCard power switches. The Guidelines recommend 70 mΩ for the +3.3V switch, 85 mΩ for the +1.5V switch, and 200 mΩ for the +3.3Vaux switch. There is discussion in the Guidelines regarding voltage regulators needed to provide one or more of the voltages supplying power to an ExpressCard module. It is conventional practice to substitute switches with integrated voltage regulators, or LDO's, where practical; although the Guidelines make no recommendations to this effect.
The Guidelines illustrate connections between the power switch device and the module detection signals, CPPE# and CPUSB#. The ExpressCard Specification and Guidelines do not provide recommendations regarding debouncing circuitry for these inputs, but such circuitry is conventional for signals such as these that interface to mechanical switches.
Thermal sensors are conventional components of power delivery semiconductor components, including power switches and power converters. Conventional PCMCIA switches, such as O2Micro's OZ2206 and OZ2211, include thermal sensors. Typically a thermal sensor may disable a power switch when the chip temperature reaches a predetermined value.
Section 3.2 of the ExpressCard Specification provides several illustrations of power ramping for ExpressCard modules, including the PERST# behavior. Timing diagrams for power-up conditions, power-down conditions, and power state transitions are given in the ExpressCard Specification, each including illustration that the PERST# signal is de-asserted only when the power is applied and stable at the module interface. The Guidelines also suggest that PERST# may be asserted when a second system-level reset signal is asserted. Power switch and PERST# control circuitry in the ExpressCard power switch generally meet the requirements discussed here.
ExpressCard Software
By way of further background, it is noted that the ExpressCard Specification and Guidelines do not include new software requirements beyond conventional USB and PCI practice; however, a few recommendations are provided. The Guidelines suggest one method of REFCLK control by means of providing new BIOS level software code, which may operate on an embedded controller, to handle the CLKREQ# signal from an ExpressCard module with a PCI Express electrical interface. Similarly, the Guidelines suggest that the WAKE# signal is handled by a power management controller, which may also require new BIOS level software code.
The most significant software recommendation is made in the ExpressCard Specification to handle interdependency for ExpressCard modules that contain both USB and PCI-Express electrical interfaces. When an eject, or removal, request is made by the computer system user for one electrical interface (via system specific techniques), the other electrical interface may also need to be stopped before it is necessarily safe to eject the module. Ejecting a module without stopping the electrical interface may yield unpredictable results, such as a system lock-up.
A software technique is illustrated in the ExpressCard Specification to handle interdependency, relieving the user from responsibility of “stopping” both USB and PCI-Express interfaces. The technical involves statically programming interdependency information, such as the interdependent USB port number and PCI-Express port number, into system non-volatile ROM data storage, such as the BIOS. The software technique involves receiving information regarding a removal (i.e. eject) request of a USB or PCI-Express device, and comparing the request information with the information stored in non-volatile ROM. If a match is made, and a first interdependent USB or PCI-Express interface is being removed, then a request to remove the second interdependent interface is made on behalf of the user. Then, both interdependent interfaces are stopped, and the user may safely eject the ExpressCard module.
ExpressCard Security Applications
There are several security-related applications that ExpressCard modules can accomplish; for example, biometric fingerprint identification devices, conventional ISO7816-3 Smart Card interface devices, wireless security products such as ISO14443 RF Smart Card, also called RFID, interface devices, and others. These ExpressCard applications will connect to the host PC through USB, PCI Express, or SMBus, as these are the only conventional ExpressCard electrical interfaces.
Biometric fingerprint identification devices are gaining popularity in computer security, and generally provide a sensor, a matching algorithm, and storage for a fingerprint template. These fingerprint identification devices generally provide medium level processing capabilities (e.g. state-of-the-art 16-bit embedded controller), for operating the matching algorithm and generating random numbers, keys, etc. They also generally provide non-volatile storage for security key-pairs and template storage. The most common PC bus interface for fingerprint identification devices today is USB, although the sensor interface to the embedded CPU is typically an SPI electrical interface, a conventional peripheral device interface to Motorola embedded CPUs; also specified by the MultiMediaCard Association as a flash media device interface.
The SPI interface is also common for communicating data between RF analog modules, including antenna connections, to the digital controller portion of an RFID system. ISO7816-3 Smart Cards and RF, contact-less, Smart Card applications are gaining popularity in client-authentication applications, and other computer system security applications. By convention, and by enhancements such as that described in U.S. Pat. No. 6,470,284, Smart Card security applications typically interface to PC systems through modular PC Cards. It is thus anticipated that these applications will be popular ExpressCard modules.
The Trusted Computing Group (TCG) has defined another security device. This device is in a second generation, first implemented as a Trusted Platform Module (TPM) specified by the Trusted Computing Platform Alliance (TCPA). The TPM device is bound to a computer system, and is not specified to be modular; thus, an ExpressCard form factor is not a conventional method of providing TCG technology. Although this is not an ExpressCard application by definition, it has found acceptance in PC applications, and may become an essential component of computer system security in the next few years. The TPM devices generally provide medium level processing capabilities, for performing security cryptographic function, generating random numbers, keys, etc. They also generally provide non-volatile storage for security key-pairs, protected data storage, and security certificate data, and firmware. Conventional TPM devices, available from market leaders Atmel and Infineon, interface to the PC system through the LPC (low-pin count) PC bus interface.